A batch system typically processes data in several processing units and combines the results to produce the desired output. In certain cases, data received for processing consists of small volumes of data. In this scenario, processing is accomplished in either of two methods.
The first existing method includes processing these small volumes of data using the same batch software on the same large computer systems as used for large volumes of data. Using a batch system to process a small volume of data is inefficient because the initialization and startup times are fixed regardless of the volume of data. As the volume of data becomes smaller, the proportion of time that is devoted to startup becomes relatively larger. Also, large system resources are tied up but not fully utilized.
The second existing method includes writing new software that will perform the same operations of a batch system for small volumes of data on small systems. However, there is a significant amount of time and expense involved in writing this new software.
A decision of using one of the existing two methods is made at the time of designing the computer system. However, the decision making is not possible as the volume of the data may not be pre-determined in all circumstances.
In light of the foregoing discussion, there is a need for enabling both batch execution and online execution on a computer system.